其他
这是ggtreet用户的提问,说ape和phytools,都可以用edgelabels来画边的labels.
set.seed(1)
tr = rtree(30)
library(ape)
plot(tr, main="ape")
edgelabels()
当然对于这个edge number,我看不到任何意义,因为只是row index of tr$edge
, 另一点是边可以独一地映射到子节点。如果我们需要把一些信息关联到边的话,我们可以关联到相应的子节点上。而节点是ggtree注释的核心。
比如说这个edge number吧, 我们可以关联到节点,然后用%<+%把资料给联接上去,就像我们关联其它资料一样。
library(ggtree)
p = ggtree(tr, ladderize=F) + geom_tiplab() + ggtitle("ggtree")
edge=data.frame(tr$edge, edge_num=1:nrow(tr$edge))
colnames(edge)=c("parent", "node", "edge_num")
p %<+% edge + geom_label(aes(x=branch, label=edge_num))
上面演示的只是特例而已,这个功能可以让用户用自己的数据注释进化树(戳蓝色字或点击阅读原文直达)。